这几天一直在想要不要去异世界冒险。认真的,异世界,完全的异世界……
个人已经初步决定去异世界了,去异世界吹西北风。
接下来需要闯过四关西北风面试,然后做出最终决定,是否前往异世界。
个人已经初步决定去异世界了,去异世界吹西北风。
接下来需要闯过四关西北风面试,然后做出最终决定,是否前往异世界。
😱15🤯3🫡3
#TIL
原来这种风格的结构化日志格式叫 logfmt。
https://brandur.org/logfmt
level=DEBUG msg="received seed" component=preprocessor.worker worker_id=2 seed=f0523
原来这种风格的结构化日志格式叫 logfmt。
https://brandur.org/logfmt
brandur.org
logfmt
A logging format used inside companies such as Heroku and Stripe which is optimal for easy development, consistency, and good legibility for humans and computers.
❤1
yzqzss|一座桥在给房东打工 log
有哪些 repo 的 E2E 测试写得好的?我借鉴借鉴最佳实践。☺️ Go/Py 优先。
最后用了一个不知道算不算主流的 E2E 方法——用日志来做 E2E 测试。我想不出其它非侵入式的 E2E 做法了。
做法就是,测试时把主程序拉起来,让主程序把日志重定向到某个 socket。
测试套件连上 socket 拿到日志流,然后就是 assert 日志里有没有我们预期/不预期的内容。
这个方法好在不需要插桩或者 mock 任何东西。
然后为了拿到 coverage 和让 -race 之类的 go test 功能能覆盖到被测试的主程序,所以不能 execve 主程序的二进制起新进程。需要在 Test* 函数里调用主程序的入口函数来把主程序拉起来。
然后由于 go test 会把同一个 package 的 *_test.go 里的全部 Test* 函数都编译到同一个二进制、在同一个进程里跑测试,所以需要把每个 E2E test 写到不同的 package 里。
https://github.com/internetarchive/Zeno/pull/403
——
想知道这种做法另类吗,有先辈用过吗?
做法就是,测试时把主程序拉起来,让主程序把日志重定向到某个 socket。
测试套件连上 socket 拿到日志流,然后就是 assert 日志里有没有我们预期/不预期的内容。
这个方法好在不需要插桩或者 mock 任何东西。
然后为了拿到 coverage 和让 -race 之类的 go test 功能能覆盖到被测试的主程序,所以不能 execve 主程序的二进制起新进程。需要在 Test* 函数里调用主程序的入口函数来把主程序拉起来。
然后由于 go test 会把同一个 package 的 *_test.go 里的全部 Test* 函数都编译到同一个二进制、在同一个进程里跑测试,所以需要把每个 E2E test 写到不同的 package 里。
https://github.com/internetarchive/Zeno/pull/403
——
想知道这种做法另类吗,有先辈用过吗?
GitHub
WIP: E2E test by yzqzss · Pull Request #403 · internetarchive/Zeno
issue: #162